package cn.wolfcode.mapper;

import cn.wolfcode.domain.Notice;
import cn.wolfcode.qo.QueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NoticeMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Notice record);

    Notice selectByPrimaryKey(Long id);

    List<Notice> selectAll();

    int updateByPrimaryKey(Notice record);

    List<Notice> selectForList(@Param("qo") QueryObject qo, @Param("id") Long id, @Param("admin") boolean admin);

    /**
     * 插入中间关系表数据
     *
     * @param id        公告id
     * @param empIdList 员工id集合
     * @param isRead    是否已读
     */
    void insertRelation(@Param("empIdList") List<Long> empIdList, @Param("id") Long id, @Param("isRead") Boolean isRead);

    /**
     * 修改发布状态
     *
     * @param id     哪一条公告
     * @param status 发布状态
     */
    void updateStatus(@Param("id") Long id, @Param("status") Boolean status);

    void updateIsRead(@Param("id") Long id, @Param("empId") Long empId, @Param("isRead") boolean isRead);

    /**
     * 获取未读信息条数
     * @param id 登录用户id
     * @return
     */
    Integer getUnread(Long id);

    /**
     * 获取已读和未读的人数 存到对象里面
     * @return
     */
    List<Notice> readCount();
}